查看原文
其他

生物信息百Jia软件(28):canu

王通 基因学苑 2023-08-18

上一次介绍了三代拼接工具falcon,但是falcon这款无论是从安装还是使用都比较麻烦,对于新手是一个很大的考验,这里次我们介绍一款更好用的三代拼接工具canu。canu这款软件来自于经典的 Celera Assembler。celera最早用于人类全基因组计划,后来随着二代测序数据的普及,这种基于overlap的方法逐渐被基于kmer的方法取代,但是虽则三代测序的流行,这些工具又焕发了新的生命。如果没听过Celera的大名,刚快bing一下“Celera Genomics”。

应用场景

1、手里有三代pacbio测序的数据,fastq格式或者fasta格式,需要连接成更长的基因组序列。
2、有nanopore测序数据,需要拼接成更长的基因组。

软件官网

https://github.com/marbl/canu

官方文档页

https://canu.readthedocs.io/en/latest/tutorial.html

下载安装

cano的安装特别容易,从github上下载软件源代码,直接make编译就能够使用。

git clone https://github.com/marbl/canu.git
cd canu/src
make -j 32

软件使用

传统的celera软件最开始利用于一代的sanger测序以及后面的454测序数据,这些数据的特点是准确性较高,所以,直接采用基于overlap的方法就可以拼接。但是当前的pacbio后者nanopore数据,具有较高的错误率,因此,canu软件需要进行一个很重要的数据校正的过程。
这是canu软件的原理的一个示意图:

  • 第一步:数据纠错(correct)
    由于三代测序的测序错误是随机产生的,因此,可以通过多次测序进行数据纠错,纠错的原理并不难,将所有测序数据堆叠在一起,根据少数服从多数的原则,将测序错误位点进行纠正。这种原理其实与二代测序的“pileup”类似。

  read1:   ATGACGTGATCGTAGCTGATCGTCGTTGGGAA
  read2:       CGTGATCGTAGCTGATCGTCG TGGGAAACAG
  read3:           ATCGTAGCTGATCGTCG TGGGAAACAGATGA
  read4:               TAGCTGATCGTCG TGGGAAACAGATGAATG
                                    ^
                                    |
                                 差别位点

校正后的结果

  read1:   ATGACGTGATCGTAGCTGATCGTCGTGGGAA
  read2:       CGTGATCGTAGCTGATCGTCGTGGGAAACAG
  read3:           ATCGTAGCTGATCGTCGTGGGAAACAGATGA
  read4:               TAGCTGATCGTCGTGGGAAACAGATGAATG
  • 第二步:修剪(trim)
    trim的作用是得到read之间高质量的overlap区域,便于后面通过overlap进行连接。

  read1:   ATGACGTGATCGTAGCTGATCGTCGTGGGAA
  read2:       CGTGATCGTAGCTGATCGTCGTGGGAAACAG
  read3:           ATCGTAGCTGATCGTCGTGGGAAACAGATGA
  read4:               TAGCTGATCGTCGTGGGAAACAGATGAATG
           |_________|     
             低质量区   

将低质量区域的碱基trim掉

  read1:   GTAGCTGATCGTCGTGGGAA
  read2:   GTAGCTGATCGTCGTGGGAAACAG
  read3:   GTAGCTGATCGTCGTGGGAAACAGATGA
  read4:    TAGCTGATCGTCGTGGGAAACAGATGAATG
  • 第三步:组装(assemble)
    经过数据就锁和trim之后,这些高质量的reads,就可以直接通过reads之间的overlap区域,连接成更长的序列了,完成了序列拼接。

---------------
        ----------------
                     --------------
    |          |           |
    v          v           v
-----------------------------------

选项参数

canu的选项参数并不难理解,不像falcon在配置文件中设置。

-s 接一个配置文件
-p 指定输出前缀
-d 指定输出结果目录
-options 显示全部选项参数

genomeSize 设置一个预估的基因组大小,便于让Canu估计测序深度,单位是K,M,G
maxThreads 设置最大线程数
rawErrorRate 设置两个未纠错read之间最大期望差异碱基数
correctedErrorRate 设置纠错后read之间最大期望差异碱基数
minReadLength 设置最小使用的reads长度
minOverlapLength 设置Overlap的最小长度

另外非常重要一点就是,需要指定输入数据的类型,是原始测序的数据,还是经过处理的。

-pacbio-raw        直接测序得到的原始pacbio数据
-pacbio-corrected   经过纠正的pacbio数据
-nanopore-raw       原始的nanopore数据
-nanopore-corrected 结果纠正的nanopore数据

使用案例

直接下载软件官方的练习数据即可进行测试。这是一个大肠杆菌的基因组测序数据。
下载数据

curl -L -o pacbio.fastq http://gembox.cbcb.umd.edu/mhap/raw/ecoli_p6_25x.filtered.fastq
curl -L -o oxford.fasta http://nanopore.s3.climb.ac.uk/MAP006-PCR-1_2D_pass.fasta

pacbio数据拼接

canu  -p ecoli -d ecoli-pacbio  genomeSize=4.8m  -pacbio-raw pacbio.fastq

nanopore数据拼接

canu  -p ecoli -d ecoli-oxford  genomeSize=4.8m  -nanopore-raw oxford.fasta

更多详细内容可以查看官方文档。


---------- END ----------

(添加作者微信,请注明单位姓名)



您可能还会感兴趣的

基因学苑2018年文章目录
生物信息零基础班(上海站)开课啦
手把手教你生信分析平台搭建专栏合集
生物信息重要资源站点合集
不会编程,如何进行批量操作
一个人全基因组完整数据分析脚本
一个细菌基因组完整分析脚本
如何在Linux下优雅的装X
2019,送给大家一份新年礼物
生物学才是终极学科



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存